package com.atguigu.rabbitmq.eight;

import com.atguigu.rabbitmq.utils.RabbitMqUtils;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/*
* 生产者
* 验证死信队列
* 这里在发送消息的时候，设置了消息的ttl过期时间
* */
public class Producer {

    public static final String NORMAL_EXCHANGE="normal_exchange";

    public static void main(String[] args) throws IOException, TimeoutException {
        Channel channel = RabbitMqUtils.getChannel();
        /*声明一个交换机*/
        channel.exchangeDeclare(NORMAL_EXCHANGE, "direct");
        /*设置消息的TTL过期时间 ，单位是ms，一旦过期，就到死信交换机里面*/
//        AMQP.BasicProperties properties = new AMQP.BasicProperties().builder().expiration("10000").build();
        /*发送信息*/
        /*该信息用作演示队列个数限制*/
        for (int i = 0; i < 11; i++) {
            String message="info"+i;
            /*第三个参数是设置消息的过期时间，死信,放上properties*/
            channel.basicPublish(NORMAL_EXCHANGE, "zhangsan", null, message.getBytes("UTF-8"));
            System.out.println("生产者发送消息："+message);
        }

    }

}
















